using ProtoBuf;

using System.Collections.Generic;
using MongoDB.Bson.Serialization.Attributes;
using Fantasy;
using Fantasy.Network.Interface;
using Fantasy.Serialize;
// ReSharper disable InconsistentNaming
// ReSharper disable RedundantUsingDirective
// ReSharper disable RedundantOverriddenMember
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable CheckNamespace
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
#pragma warning disable CS8618

namespace Fantasy
{	
	[ProtoContract]
	public partial class G2Chat_HelloRouteMessage : AMessage, IRouteMessage, IProto
	{
		public static G2Chat_HelloRouteMessage Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Chat_HelloRouteMessage>();
		}
		public override void Dispose()
		{
			msg = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Chat_HelloRouteMessage>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.G2Chat_HelloRouteMessage; }
		[ProtoMember(1)]
		public string msg { get; set; }
	}
	[ProtoContract]
	public partial class G2Chat_HelloRouteRpcRequest : AMessage, IRouteRequest, IProto
	{
		public static G2Chat_HelloRouteRpcRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Chat_HelloRouteRpcRequest>();
		}
		public override void Dispose()
		{
			msg = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Chat_HelloRouteRpcRequest>(this);
#endif
		}
		[ProtoIgnore]
		public G2Chat_HelloRouteRpcResponse ResponseType { get; set; }
		public uint OpCode() { return InnerOpcode.G2Chat_HelloRouteRpcRequest; }
		[ProtoMember(1)]
		public string msg { get; set; }
	}
	[ProtoContract]
	public partial class G2Chat_ConnectRequest : AMessage, IRouteRequest, IProto
	{
		public static G2Chat_ConnectRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Chat_ConnectRequest>();
		}
		public override void Dispose()
		{
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Chat_ConnectRequest>(this);
#endif
		}
		[ProtoIgnore]
		public Chat2G_ConnectResponse ResponseType { get; set; }
		public uint OpCode() { return InnerOpcode.G2Chat_ConnectRequest; }
	}
	[ProtoContract]
	public partial class Chat2G_ConnectResponse : AMessage, IRouteResponse, IProto
	{
		public static Chat2G_ConnectResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<Chat2G_ConnectResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			routeId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<Chat2G_ConnectResponse>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.Chat2G_ConnectResponse; }
		[ProtoMember(1)]
		public long routeId { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	[ProtoContract]
	public partial class G2Chat_HelloRouteRpcResponse : AMessage, IRouteResponse, IProto
	{
		public static G2Chat_HelloRouteRpcResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<G2Chat_HelloRouteRpcResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			msg = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<G2Chat_HelloRouteRpcResponse>(this);
#endif
		}
		public uint OpCode() { return InnerOpcode.G2Chat_HelloRouteRpcResponse; }
		[ProtoMember(1)]
		public string msg { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
}
